package 线程创建.Runnable接口;
//继承Runnable接口创建多线程
public class 买票_多个线程操作同一个对象发现问题 implements Runnable {
    private int p = 100;
//重写run()线程方法
    //synchronized 修饰符表示在进行线程调用是会检查这个资源是否已经有线程占用如果有就等等，其结束在充许下一个线程调用。（一次只充许一个线程调用资源）
    @Override
    public void run() {
        while (true){
            if (p==0){
                break;
            }
            try {
                System.out.println(Thread.currentThread().getName()+"-->拿到了第"+ p-- +"张票");
                Thread.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public  static void main(String[] args) {
        买票_多个线程操作同一个对象发现问题 t1 = new 买票_多个线程操作同一个对象发现问题();
        new Thread(t1,"小明").start();
        new Thread(t1,"小红").start();
        new Thread(t1,"小花").start();

    }
}
